package com.betting.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.betting.entity.BetRecord;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.HashMap;
import com.betting.dto.WeeklyProfitDTO;
import com.betting.dto.StreakStats;

public interface BetRecordService extends IService<BetRecord> {
    Page<BetRecord> getRecordsByPage(Page<BetRecord> page, LambdaQueryWrapper<BetRecord> wrapper);
    BetRecord saveRecord(BetRecord record);
    boolean updateById(BetRecord record);
    void deleteRecord(Long id);
    Map<String, Object> getDailySummary(LocalDate date);
    Map<String, Object> getWeeklySummary(LocalDate date);
    Map<String, Object> getMonthlySummary(LocalDate startDate, LocalDate endDate);
    BetRecord getRecordById(Long id);
    List<BetRecord> getRecordsByDateRange(LocalDate startDate, LocalDate endDate);
    Map<String, Object> getStatistics(LocalDate startDate, LocalDate endDate);
    StreakStats getStreakStats(LocalDate startDate, LocalDate endDate);
    BigDecimal getMonthlyProfit(LocalDate month);
    BigDecimal getDailyProfit(LocalDate date);
    List<WeeklyProfitDTO> getWeeklyProfits(LocalDate startDate, LocalDate endDate);
} 